import requests
import http.cookiejar as cookielib
print(f"user cookielib in python3.")

import json
import datetime

# session代表某一次连接
mafengwoSession = requests.session()
# 因为原始的session.cookies 没有save()方法，所以需要用到cookielib中的方法LWPCookieJar，这个类实例化的cookie对象，就可以直接调用save方法。
mafengwoSession.cookies = cookielib.LWPCookieJar(filename = r"C:\Users\DELL\Desktop\mafengwoCookies.txt")

userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"

def mafengwoLogin(username, pwd):
    # 马蜂窝模仿 登录
    print("开始模拟登录马蜂窝")

    postUrl = "https://org.xjtu.edu.cn/openplatform/g/admin/login"

    payloadData = {
        "jcaptchaCode": "",
        "loginType": "1",
        "pwd": pwd,
        "username": username,
    }

    # 请求头设置
    payloadHeader = {
        "Origin": "https://org.xjtu.edu.cn",
        "Referer": "https://org.xjtu.edu.cn/openplatform/login.html",
        # "Sec-Fetch-Mode": "cors",
        # "Sec-Fetch-Site": "same-origin",
        "User-Agent": userAgent,
        'Content-Type': 'application/json',
        'Host': 'Host: org.xjtu.edu.cn',
    }

    # 使用session直接post请求
    responseRes = mafengwoSession.post(url=postUrl, data = json.dumps(payloadData), headers = payloadHeader, allow_redirects=True)
    # 无论是否登录成功，状态码一般都是 statusCode = 200
    print(f"statusCode = {responseRes.status_code}")
    print(f"text = {responseRes.text}")
    # 登录成功之后，将cookie保存在本地文件中，好处是，以后再去获取马蜂窝首页的时候，就不需要再走mafengwoLogin的流程了，因为已经从文件中拿到cookie了
    mafengwoSession.cookies.save()


if __name__ == "__main__":
    # 从返回结果来看，有登录成功
    mafengwoLogin("lm810968734", "15334183661lm")

"""
失败！！！
"""